const app = getApp()
/**
  ### auth-modal

  @desc 蓝鲸授权弹窗
  @param modalShow {Boolean} - 是否要显示弹窗 - false
  @param modalMsg {String} - 显示的信息
  @param preventDefault {Boolean} - 是否禁止默认行为
  @param title {string} - 提示信息
  @event auth-cancel - 取消授权的回调
  @event auth-success - 授权成功的回调
  @example

  #### 如果页面需要微信的用户信息如头像，可调用蓝微提供的微信信授权时统一弹窗

  1、在app.js使用蓝鲸登录模块

  2、在需要授权页面的json文件里配置usingComponents字段引入弹窗组件
  ```
  {
    "usingComponents": {
      "modal": "../../components/auth-modal/auth-modal"
    }
  }
  ```

  3、在需要授权页面的wxml文件使用组件
  ```
  <modal modal-show="{{useWxAuth}}"/>
  ```

  4、您可以在需要授权页面的onLoad里让弹窗组件显示
  ```
  if (!app.globalData.userInfo) {
   this.setData({
     useWxAuth: true
   })
  }
  ```

  5、授权成功后用户信息保存在app.globalData.userInfo
*/

Component({
  properties: {
    modalShow: {
      type: Boolean,
      value: false
    },
    preventDefault: {
      type: Boolean,
      value: false
    },
    modalMsg: {
      type: String,
      value: '当前页面需要申请使用您的昵称和头像等信息'
    }
  },
  methods: {
    // 取消操作，返回首页
    cancel: function () {
      this.setData({
        modalShow: false,
      })
      if (!this.data.preventDefault) {
        wx.navigateTo({
          url: '../index/index'
        })
      }

      this.triggerEvent('auth-cancel')
    },
    getUserInfo: function (e) {
      var userInfo = e.detail.userInfo
      // 授权
      if (userInfo) {
        app.setUserInfo(userInfo, e.detail.encryptedData, e.detail.iv, () => {
          this.triggerEvent('auth-success')
        })
        this.setData({
          modalShow: false
        })
      }
    }
  }
})
